home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / gui / eagui30.lha / EAGUI / EAGUI.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-12-01  |  6.3 KB  |  162 lines

  1. /*
  2.  * $RCSfile: EAGUI.h,v $
  3.  *
  4.  * $Author: marcel $
  5.  *
  6.  * $Revision: 3.1 $
  7.  *
  8.  * $Date: 1994/11/15 22:52:19 $
  9.  *
  10.  * $Locker: marcel $
  11.  *
  12.  * $State: Exp $
  13.  */
  14.  
  15. #ifndef EAGUI_H
  16. #define EAGUI_H
  17.  
  18. /* header files */
  19. #include <exec/types.h>
  20. #include <exec/lists.h>
  21. #include <exec/nodes.h>
  22. #include <utility/hooks.h>
  23. #include "EAGUI_protos.h"
  24.  
  25. /* library name and version */
  26. #define EAGUILIBRARYNAME      "EAGUI.library"
  27. #define EAGUILIBRARYVERSION   3L
  28.  
  29. /* ea_Object.type definitions */
  30. #define EA_TYPE_HGROUP        1
  31. #define EA_TYPE_VGROUP        2
  32. #define EA_TYPE_GTGADGET      3
  33. #define EA_TYPE_BOOPSIGADGET  4
  34. #define EA_TYPE_CUSTOMIMAGE   5
  35. #define EA_TYPE_BOOPSIIMAGE   6
  36.  
  37. /* various LONG attributes can have an unknown value at some point */
  38. #define EA_UNKNOWN            -1
  39.  
  40. /* error return codes */
  41. #define EA_ERROR_OK                     0
  42. #define EA_ERROR_OUT_OF_MEMORY          100
  43. #define EA_ERROR_BAD_OBJECT             101
  44.  
  45. /* flags for standard methods */
  46. #define EASM_NONE                       0x00000000
  47. #define EASM_MINSIZE                    0x00000001
  48. #define EASM_BORDER                     0x00000002
  49.  
  50. /* tags */
  51. #define EA_TAGBASE                      (TAG_USER)
  52.  
  53. /* These tags can be used under different circumstances. The characters in the comments
  54.  * behind the tags indicate the allowed use:
  55.  *
  56.  * I = Initialize: ea_NewObjectA()
  57.  * S = Set:        ea_SetAttrsA()
  58.  * G = Get:        ea_GetAttrsA()
  59.  *
  60.  * Most functions ignore tags they don't recognize, but don't count on that,
  61.  * or side effects may occur in future versions.
  62.  */
  63. #define EA_Parent                       (EA_TAGBASE + 1)    /* I.G */
  64. #define EA_Type                         (EA_TAGBASE + 2)    /* ..G */
  65. #define EA_Disabled                     (EA_TAGBASE + 3)    /* ISG */
  66. #define EA_ID                           (EA_TAGBASE + 4)    /* ISG */
  67. #define EA_MinWidth                     (EA_TAGBASE + 5)    /* ISG */
  68. #define EA_MinHeight                    (EA_TAGBASE + 6)    /* ISG */
  69. #define EA_BorderLeft                   (EA_TAGBASE + 7)    /* ISG */
  70. #define EA_BorderRight                  (EA_TAGBASE + 8)    /* ISG */
  71. #define EA_BorderTop                    (EA_TAGBASE + 9)    /* ISG */
  72. #define EA_BorderBottom                 (EA_TAGBASE + 10)   /* ISG */
  73. #define EA_Left                         (EA_TAGBASE + 11)   /* .SG */
  74. #define EA_Top                          (EA_TAGBASE + 12)   /* .SG */
  75. #define EA_Width                        (EA_TAGBASE + 13)   /* ISG */
  76. #define EA_Height                       (EA_TAGBASE + 14)   /* ISG */
  77. #define EA_Weight                       (EA_TAGBASE + 15)   /* ISG */
  78. #define EA_Instance                     (EA_TAGBASE + 17)   /* ..G */
  79. #define EA_InstanceAddress              (EA_TAGBASE + 18)   /* ISG */
  80.  
  81. #define EA_MinSizeMethod                (EA_TAGBASE + 19)   /* ISG */
  82. #define EA_BorderMethod                 (EA_TAGBASE + 20)   /* ISG */
  83. #define EA_RenderMethod                 (EA_TAGBASE + 21)   /* ISG */
  84. #define EA_GetStateMethod               (EA_TAGBASE + 22)   /* ISG */
  85. #define EA_SetStateMethod               (EA_TAGBASE + 23)   /* ISG */
  86.  
  87. #define EA_Object                       (EA_TAGBASE + 24)   /* I.. */
  88.  
  89. #define EA_GTType                       (EA_TAGBASE + 25)   /* ISG */
  90. #define EA_GTTagList                    (EA_TAGBASE + 26)   /* ISG */
  91. #define EA_GTText                       (EA_TAGBASE + 27)   /* ISG */
  92. #define EA_GTTextAttr                   (EA_TAGBASE + 28)   /* ISG */
  93. #define EA_GTFlags                      (EA_TAGBASE + 29)   /* ISG */
  94.  
  95. #define EA_BOOPSIPrivClass              (EA_TAGBASE + 30)   /* ISG */
  96. #define EA_BOOPSIPubClass               (EA_TAGBASE + 31)   /* ISG */
  97. #define EA_BOOPSITagList                (EA_TAGBASE + 32)   /* ISG */
  98.  
  99. #define EA_Child                        (EA_TAGBASE + 33)   /* I.. */
  100.  
  101. #define EA_FirstChild                   (EA_TAGBASE + 34)   /* ..G */
  102. #define EA_NextObject                   (EA_TAGBASE + 35)   /* ..G */
  103.  
  104. #define EA_StandardMethod               (EA_TAGBASE + 36)   /* IS. */
  105. #define EA_UserData                     (EA_TAGBASE + 37)   /* ISG */
  106.  
  107. #define EA_DefDisabled                  (EA_TAGBASE + 38)   /* .SG */
  108. #define EA_DefWeight                    (EA_TAGBASE + 39)   /* .SG */
  109. #define EA_DefMinSizeMethod             (EA_TAGBASE + 40)   /* .SG */
  110. #define EA_DefBorderMethod              (EA_TAGBASE + 41)   /* .SG */
  111. #define EA_DefRenderMethod              (EA_TAGBASE + 42)   /* .SG */
  112. #define EA_DefGetStateMethod            (EA_TAGBASE + 43)   /* .SG */
  113. #define EA_DefSetStateMethod            (EA_TAGBASE + 44)   /* .SG */
  114. #define EA_DefGTType                    (EA_TAGBASE + 45)   /* .SG */
  115. #define EA_DefGTTagList                 (EA_TAGBASE + 46)   /* .SG */
  116. #define EA_DefGTText                    (EA_TAGBASE + 47)   /* .SG */
  117. #define EA_DefGTTextAttr                (EA_TAGBASE + 48)   /* .SG */
  118. #define EA_DefGTFlags                   (EA_TAGBASE + 49)   /* .SG */
  119. #define EA_DefBOOPSIPrivClass           (EA_TAGBASE + 50)   /* .SG */
  120. #define EA_DefBOOPSIPubClass            (EA_TAGBASE + 51)   /* .SG */
  121. #define EA_DefBOOPSITagList             (EA_TAGBASE + 52)   /* .SG */
  122. #define EA_DefStandardMethod            (EA_TAGBASE + 53)   /* .SG */
  123. #define EA_DefBorderLeft                (EA_TAGBASE + 54)   /* .SG */
  124. #define EA_DefBorderRight               (EA_TAGBASE + 55)   /* .SG */
  125. #define EA_DefBorderTop                 (EA_TAGBASE + 56)   /* .SG */
  126. #define EA_DefBorderBottom              (EA_TAGBASE + 57)   /* .SG */
  127.  
  128.  
  129. /* Pointer to an object, which is used as a `handle' by a lot of functions. The actual
  130.  * data structure of the object is hidden from the application programmer.
  131.  */
  132. typedef struct ea_Object *    OPTR;
  133.  
  134. /* This structure is READ-ONLY! */
  135. typedef struct ea_RelationObject
  136. {
  137.      /* private */
  138.      struct Node              node;                         /* node */
  139.  
  140.      /* attributes */
  141.      struct ea_Object *       object_ptr;                   /* pointer to the object */
  142. };
  143.  
  144. /* Message structure as used by the Render hook. A pointer to this structure is passed
  145.  * in the message parameter of the callback hook. For more information on hooks, take
  146.  * a look at amiga.lib/CallHook() or utility.library/CallHookPkt().
  147.  */
  148. typedef struct ea_RenderMessage
  149. {
  150.      struct ea_Object *root_ptr;
  151.      struct RastPort *rastport_ptr;
  152. };
  153.  
  154. /* Library base name. */
  155. GLOBAL struct Library *EAGUIBase;
  156.  
  157. #ifndef NOEAGUIMACROS
  158. #include "EAGUI_macros.h"
  159. #endif
  160.  
  161. #endif /* EAGUI_H */
  162.